hook=.git/hooks/commit-msg
# 1. 文件存在且名字对
[ -f "$hook" ] || { echo "❌ 文件不存在"; exit 1; }
# 2. 可执行标记
git update-index --chmod=+x "$hook" 2>/dev/null || chmod +x "$hook"
# 3. 换行符 & shebang
file "$hook" | grep -q CRLF && dos2unix "$hook"
grep -q '^#!/usr/bin/env sh' "$hook" || echo '⚠️  第一行 shebang 可能不对'
# 4. 测试
echo "feat: test" >/tmp/COMMIT_EDITMSG
"$hook" /tmp/COMMIT_EDITMSG && echo "✅ 钩子通过" || echo "❌ 钩子拒绝"

# test test test test test test test test test test 
